// uniform vec3 diffuse;
varying vec3 v_instanceDiffuseColor;
varying float v_instanceOpacity;
#ifndef FLAT_SHADED
varying vec3 vNormal;
#endif
#include<common>
#include<dithering_pars_fragment>
#include<color_pars_fragment>
#include<uv_pars_fragment>
#include<uv2_pars_fragment>
#include<map_pars_fragment>
#include<alphamap_pars_fragment>
#include<alphatest_pars_fragment>
#include<aomap_pars_fragment>
#include<lightmap_pars_fragment>
#include<envmap_common_pars_fragment>
#include<envmap_pars_fragment>
#include<fog_pars_fragment>
#include<specularmap_pars_fragment>
#include<logdepthbuf_pars_fragment>
#include<clipping_planes_pars_fragment>
void main(){
    #include<clipping_planes_fragment>
    vec4 diffuseColor=vec4(v_instanceDiffuseColor,v_instanceOpacity);
    #include<logdepthbuf_fragment>
    #include<map_fragment>
    #include<color_fragment>
    #include<alphamap_fragment>
    #include<alphatest_fragment>
    #include<specularmap_fragment>
    ReflectedLight reflectedLight=ReflectedLight(vec3(0.),vec3(0.),vec3(0.),vec3(0.));
    // accumulation (baked indirect lighting only)
    #ifdef USE_LIGHTMAP
    vec4 lightMapTexel=texture2D(lightMap,vUv2);
    reflectedLight.indirectDiffuse+=lightMapTexel.rgb*lightMapIntensity*RECIPROCAL_PI;
    #else
    reflectedLight.indirectDiffuse+=vec3(1.);
    #endif
    // modulation
    #include<aomap_fragment>
    reflectedLight.indirectDiffuse*=diffuseColor.rgb;
    vec3 outgoingLight=reflectedLight.indirectDiffuse;
    #include<envmap_fragment>
    #include<output_fragment>
    #include<tonemapping_fragment>
    #include<encodings_fragment>
    #include<fog_fragment>
    #include<premultiplied_alpha_fragment>
    #include<dithering_fragment>
}